class Solution {
    public List<List<Integer>> generate(int numRows) {
         List<List<Integer>> res = new ArrayList<>();
        if(numRows==1){
            List<Integer> row1=new ArrayList<>();
            row1.add(1);
            res.add(row1);
            return res;
        }
        List<Integer> row1=new ArrayList<>();
        row1.add(1);
        res.add(row1);
        if(numRows==2){
            List<Integer> row2=new ArrayList<>();
            row2.add(1);
            row2.add(1);
            res.add(row2);
            return res;
        }
        List<Integer> row2=new ArrayList<>();
        row2.add(1);
        row2.add(1);
        res.add(row2);
        List<Integer> lastRow=new ArrayList<>();
        lastRow=row2;
        // 手动初始化前两行
        for(int i=2;i<numRows;i++){
            List<Integer> row=new ArrayList<>();
            row.add(1);
            for(int k=1;k<i;k++){
                row.add(lastRow.get(k-1)+lastRow.get(k));
            }
            row.add(1);
            lastRow=row;
            res.add(row);
        }
        return res;
    }
}